home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / a_utils / ffccflow / ffccflow.lha / ffccc+flow / ffccc / SKIPLV.f < prev    next >
Encoding:
Text File  |  1992-07-31  |  1.1 KB  |  38 lines

  1.       SUBROUTINE SKIPLV(STRING,ICC1,ICC2,HOLFLG,KPOS,ILEV)  
  2. *-----------------------------------------------------------------------
  3. * scans back to right bracket corresponding to last left one
  4. * input 
  5. * STRING    string to be looked up  
  6. * ICC1      first ch. in LSTRNG 
  7. * ICC2      last ch.       -
  8. * HOLFLG    if TRUE, hollerith included 
  9. * output
  10. * KPOS      position of right bracket or 0  
  11. * ILEV      relative level, including KPOS (i.e. -1, if found)  
  12. *-----------------------------------------------------------------------
  13.       LOGICAL HOLFLG
  14.       CHARACTER STRING*(*),STEMP*1  
  15.       ILEV=0
  16.       KPOS=0
  17.       JC=ICC1-1 
  18.    10 JC=JC+1   
  19.       IF (JC.GT.ICC2) GOTO 999  
  20.       STEMP=STRING(JC:JC)   
  21.       IF(STEMP.EQ.'{')  THEN
  22. *--- start of character string  
  23.          IF (.NOT.HOLFLG) THEN  
  24.             I=INDEX(STRING(JC:ICC2),'}')
  25.             IF (I.EQ.0) GOTO 999
  26.             JC=I+JC-1   
  27.          ENDIF  
  28.       ELSEIF(STEMP.EQ.'(')  THEN
  29.          ILEV=ILEV+1
  30.       ELSEIF(STEMP.EQ.')')  THEN
  31.          ILEV=ILEV-1
  32.          IF (ILEV.LT.0) GOTO 20 
  33.       ENDIF 
  34.       GOTO 10   
  35.    20 CONTINUE  
  36.       KPOS=JC   
  37.   999 END   
  38.